@article{Scheifler77,
author = {Robert W. Scheifler},
title = {An analysis of inline substitution for a structured programming language},
journaltitle = {Communications of the ACM},
year = {1977}
}

@article{Krall,
author = {Andreas Krall and Reinhard Grafl},
title = {CACAO - A 64 Bit JavaVM Just-in-Time Compiler},
year = {1997}
}

@article{Jones2002,
author = {Peyton Jones, Simon and Marlow, Simon},
title = {Secrets of the Glasgow Haskell Compiler inliner},
year = {2002},
month = {July},
pages = {393-434},
journal = {Journal of Functional Programming},
volume = {12},
}

@article{Davidson92,
author = {Davidson, Jack W. and Holler, Anne M.},
title = {Subprogram Inlining: A Study of Its Effects on Program Execution Time},
year = {1992},
issue_date = {February 1992},
publisher = {IEEE Press},
volume = {18},
number = {2},
issn = {0098-5589},
url = {https://doi.org/10.1109/32.121752},
doi = {10.1109/32.121752},
journal = {IEEE Trans. Softw. Eng.},
month = feb,
pages = {89–102},
numpages = {14},
keywords = {storage allocation, demand-paged virtual memory machines, interprocedural data flow analysis, virtual storage, inlined program execution time behavior, caching, execution time performance, programming, inlining algorithm, program testing, inlined code, computer systems, inlined versions, program size constraints, subprogram inlining, paging behavior}
}

@online{JVMSpec,
author = {Tim Lindholm, Frank Yellin, Gilad Bracha and others},
title = {The Java® Virtual Machine Specification},
year = {2013},
url = {https://docs.oracle.com/javase/specs/jvms/se7/html/}
}

@online{Implementation,
author = {Tobias Schwarzinger},
title = {Repository of the implementation},
year = {2020},
url = {https://bitbucket.org/tobixdev/cacao-staging/branch/inlining}
}

@inproceedings{Detlefs99,
author = {David Detlefs and Ole Agesen},
title = {Inlining of Virtual Methods},
year = {1999},
OPTeventtitle = {ECOOP'99 - Object-Oriented Programming}
}

@inproceedings{Arnold00,
author = {Matthew Arnold, Stephen Fink, Vivek Sarkar and others},
title = {A Comparative Study of Static and Profile-Based Heuristics for Inlining},
year = {2000},
OPTeventtitle = {DYNAMO '00: Proceedings of the ACM SIGPLAN workshop on Dynamic and adaptive compilation and optimization},
OPTpages = {52-64}
}

@inproceedings{Steiner07,
author = {Edwin Steiner, Andreas Krall and Christian Thalinger},
title = {Adaptive Inlining and On-Stack Replacement in the CACAO
Virtual Machine},
year = {2007},
OPTeventtitle = {PPPJ '07: Proceedings of the 5th international symposium on Principles and practice of programming in Java},
OPTpages = {221-226}
}

@inproceedings{Simon13,
author = {Douglas Simon, John Cavazos, Christian Wimmer and others},
title = {Automatic construction of inlining heuristics using machine learning},
year = {2013},
OPTeventtitle = {CGO '13: Proceedings of the 2013 IEEE/ACM International Symposium on Code Generation and Optimization (CGO)},
OPTpages = {1-12}
}

@inproceedings{Dean94,
author = {Jeffrey Dean and Craig Chambers},
title = {Towards better inlining decisions using inlining trials},
year = {1994},
OPTeventtitle = {LFP94: ACM Conference on Lisp and Functional Programming},
OPTpages = {273–282}
}

@inproceedings{Prokopec19,
author = {Aleksandar Prokopec, Gilles Duboscq, David Leopoldseder and others},
title = {An Optimization-Driven Incremental Inline Substitution Algorithm for Just-in-Time Compilers},
year = {2019},
OPTeventtitle = {CGO 2019: Proceedings of the 2019 IEEE/ACM International Symposium on Code Generation and Optimization},
OPTpages = {164-179}
}

@inproceedings{Arnold02,
author = {Matthew Arnold and Barbara G. Ryder},
title = {Thin Guards: A Simple and Effective Technique for Reducing the Penalty of Dynamic Class Loading},
year = {2002}
}

@inproceedings{Click95,
author = {Cliff Click},
title = {Global Code Motion / Global Value Numbering},
year = {1995},
OPTeventtitle = {PLDI '95: Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation},
OPTpages = {246–257}

}

@thesis{Eisl13,
author = {Josef Eisl},
title = {Optimization Framework for the CACAO VM.},
type = {Master's thesis},
institution = {Vienna University of Technology},
year = {2013}
}

@thesis{Schutzenhofer17,
author = {Hermann Schützenhöfer},
title = {Array Bounds Checking Optimization for the New Optimizing Compiler of the CACAO VM},
type = {Bachelor's thesis},
institution = {Vienna University of Technology},
year = {2017}
}

@thesis{SteinerM07,
author = {Edwin Steiner},
title = {Adaptive inlining and on-stack replacement in a Java virtual machine},
type = {Master's thesis},
institution = {Vienna University of Technology},
year = {2007}
}

@thesis{Reisinger14,
author = {Matthias Reisinger},
title = {SSA-based Optimizations},
type = {Bachelor's thesis},
institution = {Vienna University of Technology},
year = {2013}
}
